package nespresso.servlets;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;

import nespresso.beans.*;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;



public class LoginnewServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	public HttpSession session;
		Log log;
    /**
     * Default constructor. 
     */
    public LoginnewServlet() {
		log = LogFactory.getLog(LoginnewServlet.class);

    
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
		 * si l'utilisateur tape l'adresse de la servlet directement dans la barre d'adresse, il est renvoyé 
		 * sur la page d'accueil !
		 */
		response.sendRedirect("nespresso.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// on ouvre une session pour y mettre nos objets et pour protéger les pages
		session  = request.getSession(true);
		// on récupère les valeurs des champs du formulaire de la page de saisie des infos du compte
		request.setCharacterEncoding("UTF-8");
    	request.setAttribute("LoginMessage", "");
    	String bouton = request.getParameter("bloginnew");
    	if(bouton.equals("Créer le compte")) {
    		String pwd	 = request.getParameter("mdp1");
    		User usernew = new User();
    		usernew.setId("-NEW-");
    		usernew.setNom(request.getParameter("nom"));
    		usernew.setPrenom(request.getParameter("prenom"));
    		usernew.setLogin(request.getParameter("login"));
    		usernew.setRole("GUEST");
    		usernew.setEmail(request.getParameter("email"));
    		request.setAttribute("LoginMessage", "User " + usernew.getPrenom() + " " + usernew.getNom() + " créé avec succès !");
    		if(!usernew.InsertUser(pwd)) {
    			log.error("Le user " + usernew.getPrenom() + " " + usernew.getNom() + "N'a pas pu être créé." + (char)13 + "Vérifiez les erreurs précédentes.");
    			request.setAttribute("LoginMessage", "Erreur lors de la création du user " + usernew.getPrenom() + " " + usernew.getNom() + " !");
    		} else {
    			log.info("User " + usernew.getPrenom() + " " + usernew.getNom() + " créé avec succès !");
    			new EnvoiMail(usernew, usernew, "BIENVENUE");
    		}
    	}
		RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("/nespresso.jsp");
		reqDispatcher.forward(request,response);
	}
}
